package com.aracky.system.model.vo;

import com.aracky.common.entitybase.BaseCommonVO;
import com.aracky.system.model.entity.SysRole;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 用户信息表
 * </p>
 *
 * @author zzp
 * @since 2022-07-14 11:22:57
 */
@Getter
@Setter
@ApiModel(value = "SysUser对象", description = "用户信息表")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SysUserVO extends BaseCommonVO {

    @ApiModelProperty("用户ID")
    private Long userId;

    @ApiModelProperty("部门ID")
    private Long deptId;

    @ApiModelProperty("登录账号")
    private String loginName;

    @ApiModelProperty("用户昵称")
    private String userName;

    @ApiModelProperty("用户类型（00系统用户 01注册用户）")
    private String userType;

    @ApiModelProperty("用户邮箱")
    private String email;

    @ApiModelProperty("手机号码")
    private String phonenumber;

    @ApiModelProperty("用户性别（0男 1女 2未知）")
    private Integer sex;

    @ApiModelProperty("头像路径")
    private String avatar;

    @ApiModelProperty("帐号状态（true正常 false停用）")
    private Boolean status;

    @ApiModelProperty("最后登录IP")
    private String loginIp;

    @ApiModelProperty("最后登录时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date loginDate;

    @ApiModelProperty("密码最后更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date pwdUpdateDate;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("部门")
    private SysDeptVO sysDept;

    @ApiModelProperty("角色")
    private List<SysRoleVO> roles;

    @ApiModelProperty("List<SysRole>对象")
    private List<SysRole> roleList;

    @ApiModelProperty("按钮权限信息")
    private List<String> buttonList;
}
